/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.geaSV.beans;

import com.geaSV.busquedas.busquedaDepartamento;
import com.geaSV.busquedas.busquedaMunicipios;
import com.geaSV.creaciones.crearUsuario;
import com.geaSV.entities.DepartamentoE;
import com.geaSV.entities.MunicipiosE;
import com.geaSV.entities.PersonaE;
import com.geaSV.entities.usuarioE;
import java.io.Serializable;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author vash
 */
@ManagedBean
@RequestScoped
public final class UsuariosBean implements Serializable {
    private int id;
    private String nombre1,nombre2, apel1,apel2,apel3;
    private Date date;
    private String genero;
    private int Municipios;
    private String email,dui,isss,nit,telefono,direccion;
    private int Depto,nivelAcceso;
    private String nomUs,contra,preguntaS,respuestaS;
    private List<DepartamentoE> lstDep=new ArrayList();
    private ArrayList alstDep=new ArrayList();
    private List<MunicipiosE> lstMun=new ArrayList();
    private ArrayList alstMun=new ArrayList();
    private String especialidad;

    public int getMunicipios() {
        return Municipios;
    }

    public void setMunicipios(int Municipios) {
        this.Municipios = Municipios;
    }
    

    public String getEspecialidad() {
        return especialidad;
    }

    public void setEspecialidad(String especialidad) {
        this.especialidad = especialidad;
    }
    

    public List<MunicipiosE> getLstMun() {
        return lstMun;
    }

    public void setLstMun(List<MunicipiosE> lstMun) {
        this.lstMun = lstMun;
    }

    public ArrayList getAlstMun() {
        return alstMun;
    }

    public void setAlstMun(ArrayList alstMun) {
        this.alstMun = alstMun;
    }
    
    
    public List<DepartamentoE> getLstDep() {
        return lstDep;
    }

    public void setLstDep(List<DepartamentoE> lstDep) {
        this.lstDep = lstDep;
    }

    public ArrayList getAlstDep() {
        return alstDep;
    }

    public void setAlstDep(ArrayList alstDep) {
        this.alstDep = alstDep;
    }
    

    public int getNivelAcceso() {
        return nivelAcceso;
    }

    public void setNivelAcceso(int nivelAcceso) {
        this.nivelAcceso = nivelAcceso;
    }

    public String getNomUs() {
        return nomUs;
    }

    public void setNomUs(String nomUs) {
        this.nomUs = nomUs;
    }

    public String getContra() {
        return contra;
    }

    public void setContra(String contra) {
        this.contra = contra;
    }

    public String getPreguntaS() {
        return preguntaS;
    }

    public void setPreguntaS(String preguntaS) {
        this.preguntaS = preguntaS;
    }

    public String getRespuestaS() {
        return respuestaS;
    }

    public void setRespuestaS(String respuestaS) {
        this.respuestaS = respuestaS;
    }

    public int getDepto() {
        return Depto;
    }

    public void setDepto(int Depto) {
        this.Depto = Depto;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNombre1() {
        return nombre1;
    }

    public void setNombre1(String nombre1) {
        this.nombre1 = nombre1;
    }

    public String getNombre2() {
        return nombre2;
    }

    public void setNombre2(String nombre2) {
        this.nombre2 = nombre2;
    }

    public String getApel1() {
        return apel1;
    }

    public void setApel1(String apel1) {
        this.apel1 = apel1;
    }

    public String getApel2() {
        return apel2;
    }

    public void setApel2(String apel2) {
        this.apel2 = apel2;
    }

    public String getApel3() {
        return apel3;
    }

    public void setApel3(String apel3) {
        this.apel3 = apel3;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        this.genero = genero;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getDui() {
        return dui;
    }

    public void setDui(String dui) {
        this.dui = dui;
    }

    public String getIsss() {
        return isss;
    }

    public void setIsss(String isss) {
        this.isss = isss;
    }

    public String getNit() {
        return nit;
    }

    public void setNit(String nit) {
        this.nit = nit;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }
    
    /**
     * Creates a new instance of UsuariosBean
     */
    public UsuariosBean() {
    
     llenarMunicipios();
     llenardepartamentos();
    }
    
   
    public void llenardepartamentos(){
     try{
    busquedaDepartamento bD=new busquedaDepartamento();     
    this.lstDep=bD.obtenerDepartamentosTodos();
            for (Iterator<DepartamentoE> it = lstDep.iterator(); it.hasNext();) {
                DepartamentoE dep = it.next();
                this.alstDep.add(new SelectItem(dep.getId(),dep.getNombre()));             
            }
        }catch (Exception e) {
            System.out.println(e);
        }
    }
    
    public void llenarMunicipios(){
        try{
    busquedaMunicipios bM=new busquedaMunicipios();     
    this.lstMun=bM.obtenerMunicipiosTodos();
            for (Iterator<MunicipiosE> it = lstMun.iterator(); it.hasNext();) {
                MunicipiosE mun = it.next();
                this.alstMun.add(new SelectItem(mun.getId(),mun.getNombreM()+"--"+mun.getNombreDep()));             
            }
        }catch (Exception e) {
            System.out.println(e);
        }
    }
    
    
    public void crearUsuario() throws SQLException{
    PersonaE p=new PersonaE();
    usuarioE u=new usuarioE();
    p.setApel1(apel1);
    p.setApel2(apel2);
    p.setApel3(apel3);
    p.setDireccion(direccion);
    SimpleDateFormat formato = new SimpleDateFormat("yyyy/MM/dd");
    String fechaformato = formato.format(date);
    p.setDate(fechaformato);
    p.setDui(dui);
    p.setEmail(email);
    p.setGenero(genero);
    p.setIsss(isss);
    p.setMunicipio(Municipios);
    p.setNombre1(nombre1);
    p.setNombre2(nombre2);
    p.setTelefono(telefono);
    p.setNit(nit);
    p.setEspecialidad(especialidad);
     SimpleDateFormat formato2 = new SimpleDateFormat("yyyy/MM/dd");
    u.setFecha_registro(formato2.format(new Date()));
    u.setNivel_acceso(nivelAcceso);
    u.setNombre(nomUs);
    u.setPassword(contra);
    u.setPregunta(preguntaS);
    u.setRespuesta(respuestaS);
    u.setEstatus(1);
    crearUsuario cU=new crearUsuario();
    String msg=cU.crearEmpleado(p, u);
    if(msg.contains("ERROR")){
       FacesContext.getCurrentInstance().addMessage
          (null, new FacesMessage(FacesMessage.SEVERITY_ERROR,msg, null));
     }
     else{
     FacesContext.getCurrentInstance().addMessage
          (null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Datos ingresados correctamente", null));
     }
   
        System.out.println(this.Municipios);
    }
        
}
